Spring Boot і H2 Database (тестова база даних)

H2 Database – це легка вбудована реляційна база даних, яка ідеально підходить для тестування Spring Boot застосунків. Вона може працювати як у пам'яті, так і в файловому режимі.

1. Підключення H2 Database

Додайте залежність у pom.xml:

                
                
                    com.h2database
                    h2
                    runtime
                
                
            

2. Конфігурація H2 у Spring Boot

Приклад налаштувань у application.properties:

                
                spring.datasource.url=jdbc:h2:mem:testdb
                spring.datasource.driverClassName=org.h2.Driver
                spring.datasource.username=sa
                spring.datasource.password=
                spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
                spring.h2.console.enabled=true
                spring.h2.console.path=/h2-console
                
            

3. Відкриття H2 Console

Після запуску додатка H2 Console доступна за адресою:

                
                http://localhost:8080/h2-console
                
            

У полі JDBC URL вкажіть: jdbc:h2:mem:testdb, залишивши ім'я користувача sa без пароля.

4. Створення сутності для H2

                
                @Entity
                @Table(name = "users")
                public class User {
                    @Id
                    @GeneratedValue(strategy = GenerationType.IDENTITY)
                    private Long id;
                    
                    private String name;
                    private String email;
                }
                
            

5. Репозиторій для взаємодії з H2

                
                @Repository
                public interface UserRepository extends JpaRepository {
                    List findByName(String name);
                }
                
            

6. Використання у сервісному шарі

                
                @Service
                public class UserService {
                    private final UserRepository userRepository;
                    
                    public UserService(UserRepository userRepository) {
                        this.userRepository = userRepository;
                    }
                    
                    public List getAllUsers() {
                        return userRepository.findAll();
                    }
                }
                
            

Назад Далі